﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;
using Entidades;
using System.Drawing;

public partial class abmSocio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            lblError.Text = "";
            llenarGrilla();
        }
    }

    protected void llenarGrilla()
    {
        try{
            dgvSocio.DataSource =SocioDAO.obtenerSocios(txtDniSocio.Text);            
            dgvSocio.DataBind();
        }catch (SystemException ex) {
                                     lblError.Text += ex.Message.ToString();
                                     }
    }

    protected void btnAgregar_Click(object sender, EventArgs e)
    {
        lblUsuario.Text= txtNombre.Text+"."+txtApellido.Text;
        lblRol.Text = "SOCIO";
        pnlUsuario.Visible = true;
        pnlAlta.Visible = false;
    }

    protected void btnModificar_Click(object sender, EventArgs e)
    {
        Socio soc = new Socio();
        soc.Id = int.Parse(txtId.Value);
        soc.Nombre = txtNombre.Text;
        soc.Apellido = txtApellido.Text;
        soc.Dni = txtDni.Text;
        soc.FechaNacimiento = Convert.ToDateTime(txtFechaNacimiento.Text);
        soc.Telefono = txtTelefono.Text;
        soc.Mail = txtMail.Text;

        if (SocioDAO.modificarSocio(soc) > 0)
        {
            pnlAlta.Visible = false;
            pnlListado.Visible = true;
            lblError.ForeColor = Color.Green;
            lblError.Text = "Socio modificado correctamente";
            limpiarCampos();
        }
        else
            lblError.Text = "No se pudo modificar el registro";
        llenarGrilla();
    }
   
    protected void btnConsultar_Click(object sender, EventArgs e)
    {
        try{
            llenarGrilla();
            txtDniSocio.Text = "";
        }catch (SystemException ex){lblError.Text += ex.Message.ToString();}
    }

    
    protected void btnNuevoSocio_Click(object sender, EventArgs e)
    {
        pnlAlta.Visible = true;
        pnlListado.Visible = false;
        btnAgregar.Visible = true;
        btnModificar.Visible = false;
        txtDniSocio.Text = "";
        limpiarCampos();
    }

    protected void btnEliminar_Command(object sender, CommandEventArgs e)
    {
        int index = Convert.ToInt32(e.CommandArgument);
        int idSocio = int.Parse(dgvSocio.DataKeys[index].Value.ToString());
        try {
            if (e.CommandName == "Modificar")
            {
                pnlAlta.Visible = true;
                Socio soc = SocioDAO.obtenerSocio(idSocio);
                txtId.Value = soc.Id.ToString();
                txtNombre.Text = soc.Nombre;
                txtApellido.Text = soc.Apellido;
                txtDni.Text = soc.Dni;
                txtFechaNacimiento.Text = soc.FechaNacimiento.ToString();
                txtTelefono.Text = soc.Telefono;
                txtMail.Text = soc.Mail;
                
                btnAgregar.Visible = false;
            }
            if (e.CommandName == "Eliminar")
            {
                if (SocioDAO.bajaSocio(idSocio) > 0)
                    lblError.Text = "Registro Eliminado";
                else
                    lblError.Text = "No se pudo eliminar el registro";
                llenarGrilla();
            }
        
        }catch (SystemException ex){lblError.Text += ex.Message.ToString();}
    }
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        if (txtClave.Text != txtRepetirClave.Text)
        {
            lblMje.Text = "Claves no coincidentes";
            txtClave.Text = "";
            txtRepetirClave.Text = "";
            return;
        }

        Socio soc = new Socio();
        soc.Nombre = txtNombre.Text;
        soc.Apellido = txtApellido.Text;
        soc.Dni = txtDni.Text;
        soc.FechaNacimiento = Convert.ToDateTime(txtFechaNacimiento.Text);
        soc.Telefono = txtTelefono.Text;
        soc.Mail = txtMail.Text;

        Usuario usu = new Usuario();
        usu.Nombre = lblUsuario.Text;
        usu.Clave = txtClave.Text;
        usu.Rol = "S";

        if (SocioDAO.agregarSocio(soc,usu) != 0)
        {            
            lblError.ForeColor = Color.Green;
            lblError.Text = "Socio insertado correctamente";
            llenarGrilla();
            pnlAlta.Visible = false;
            pnlListado.Visible = true;
            pnlUsuario.Visible = false;
        }
        else
            lblError.Text = "No se puedo agregar el Socio";
    }
    public void limpiarCampos()
    {
        txtId.Value = "";
        txtApellido.Text = "";
        txtNombre.Text = "";
        txtMail.Text = "";
        txtFechaNacimiento.Text = "";
        txtTelefono.Text = "";
        txtDni.Text = "";
    }
    protected void dgvProfesores_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        dgvSocio.PageIndex = e.NewPageIndex;
        dgvSocio.DataBind();
    }
}